Skip to content

feat(ui,clerk-js,shared): Add <experimental_ConfigureSSO />#8427

Open
LauraBeatris wants to merge 13 commits intomainfrom
laura/add-configure-sso-component
Open

feat(ui,clerk-js,shared): Add <experimental_ConfigureSSO />#8427
LauraBeatris wants to merge 13 commits intomainfrom
laura/add-configure-sso-component

Conversation

@LauraBeatris
Copy link
Copy Markdown
Member

@LauraBeatris LauraBeatris commented Apr 30, 2026

Description

This PR adds the scaffolding structure for <__experimental_ConfigureSSO /> - it doesn't include actual functionally + UI content yet, this will be introduced in a separate PR.

The goal is to get the initial structure merged here (clerk/ui methods, packages exports, etc) merged, so the next UI PRs are easier to parallelize + easier to review.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

@LauraBeatris LauraBeatris self-assigned this Apr 30, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 30, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
clerk-js-sandbox Ready Ready Preview, Comment May 4, 2026 8:10pm

Request Review

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 30, 2026

🦋 Changeset detected

Latest commit: bcc4254

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 20 packages
Name Type
@clerk/localizations Minor
@clerk/clerk-js Minor
@clerk/shared Minor
@clerk/astro Minor
@clerk/react Minor
@clerk/nuxt Minor
@clerk/vue Minor
@clerk/ui Minor
@clerk/chrome-extension Patch
@clerk/expo Patch
@clerk/backend Patch
@clerk/expo-passkeys Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/hono Patch
@clerk/msw Patch
@clerk/nextjs Patch
@clerk/react-router Patch
@clerk/tanstack-react-start Patch
@clerk/testing Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@LauraBeatris LauraBeatris changed the title feat(ui): Add <ConfigureSSO /> feat(ui,clerk-js,shared): Add <ConfigureSSO /> Apr 30, 2026
@LauraBeatris LauraBeatris changed the title feat(ui,clerk-js,shared): Add <ConfigureSSO /> feat(ui,clerk-js,shared): Add <experimental_ConfigureSSO /> Apr 30, 2026
@LauraBeatris LauraBeatris marked this pull request as ready for review April 30, 2026 15:25
@LauraBeatris LauraBeatris requested review from a team and iagodahlem April 30, 2026 15:25
@LauraBeatris LauraBeatris changed the title feat(ui,clerk-js,shared): Add <experimental_ConfigureSSO /> feat(ui,clerk-js,shared): Add <experimental_ConfigureSSO /> Apr 30, 2026
@LauraBeatris LauraBeatris marked this pull request as draft April 30, 2026 15:27
@LauraBeatris LauraBeatris force-pushed the laura/add-configure-sso-component branch from d206a33 to 317f492 Compare April 30, 2026 15:28
@LauraBeatris LauraBeatris marked this pull request as ready for review April 30, 2026 15:33
@LauraBeatris LauraBeatris force-pushed the laura/add-configure-sso-component branch from 0be1d49 to 1f1c9d9 Compare April 30, 2026 15:34
@LauraBeatris LauraBeatris force-pushed the laura/add-configure-sso-component branch from ebcac3f to 4a5c44e Compare May 4, 2026 17:30
@LauraBeatris LauraBeatris force-pushed the laura/add-configure-sso-component branch from 4a5c44e to 49e435e Compare May 4, 2026 18:33
@LauraBeatris LauraBeatris marked this pull request as ready for review May 4, 2026 19:09
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/react/src/isomorphicClerk.ts (1)

4-41: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Remove duplicate OAuthConsentProps import to fix TypeScript compilation.

OAuthConsentProps is imported twice in the same import type clause. Remove the duplicate to prevent TypeScript errors.

Suggested fix
 import type {
   __internal_AttemptToEnableEnvironmentSettingParams,
   __internal_AttemptToEnableEnvironmentSettingResult,
   __internal_CheckoutProps,
   __internal_EnableOrganizationsPromptProps,
-  OAuthConsentProps,
   __internal_PlanDetailsProps,
   __internal_SubscriptionDetailsProps,
   __internal_UserVerificationModalProps,
   __internal_UserVerificationProps,
   APIKeysNamespace,
@@
   LoadedClerk,
   OAuthApplicationNamespace,
   OAuthConsentProps,
   OrganizationListProps,
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/react/src/isomorphicClerk.ts` around lines 4 - 41, The import list
in the top-level type import contains a duplicate symbol OAuthConsentProps which
causes TypeScript to fail; edit the import type clause that declares
OAuthConsentProps (in isomorphicClerk.ts) and remove the redundant
OAuthConsentProps entry so the symbol is only imported once, preserving the rest
of the imported names like LoadedClerk, ClerkOptions, and ListenerCallback.
♻️ Duplicate comments (1)
packages/ui/src/components/ConfigureSSO/__tests__/ConfigureSSO.test.tsx (1)

16-19: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Test fixture masks the self_serve_sso gating path.

At Line 17, setting enterpriseSSO.enabled = false allows this test to pass even if the self_serve_sso guard is broken. Keep enterprise SSO enabled and only disable self_serve_sso so this test validates the intended branch.

Suggested fix
-    fixtures.environment.userSettings.enterpriseSSO = {
-      enabled: false,
-      self_serve_sso: false,
-    };
+    fixtures.environment.userSettings.enterpriseSSO = {
+      enabled: true,
+      self_serve_sso: false,
+    };

As per coding guidelines, "Use proper test coverage in React component tests" and "Test component behavior, not implementation details."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/ui/src/components/ConfigureSSO/__tests__/ConfigureSSO.test.tsx`
around lines 16 - 19, The test fixture currently disables the entire enterprise
SSO gate (fixtures.environment.userSettings.enterpriseSSO.enabled = false) which
masks the self_serve_sso branch; change the fixture so enterpriseSSO.enabled
remains true and only set enterpriseSSO.self_serve_sso = false, then update the
ConfigureSSO test to assert the component behavior that corresponds to the
self-serve-disabled path (using the existing test assertions for ConfigureSSO
rendering) so the test validates the intended branch guarded by self_serve_sso.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@packages/react/src/isomorphicClerk.ts`:
- Around line 4-41: The import list in the top-level type import contains a
duplicate symbol OAuthConsentProps which causes TypeScript to fail; edit the
import type clause that declares OAuthConsentProps (in isomorphicClerk.ts) and
remove the redundant OAuthConsentProps entry so the symbol is only imported
once, preserving the rest of the imported names like LoadedClerk, ClerkOptions,
and ListenerCallback.

---

Duplicate comments:
In `@packages/ui/src/components/ConfigureSSO/__tests__/ConfigureSSO.test.tsx`:
- Around line 16-19: The test fixture currently disables the entire enterprise
SSO gate (fixtures.environment.userSettings.enterpriseSSO.enabled = false) which
masks the self_serve_sso branch; change the fixture so enterpriseSSO.enabled
remains true and only set enterpriseSSO.self_serve_sso = false, then update the
ConfigureSSO test to assert the component behavior that corresponds to the
self-serve-disabled path (using the existing test assertions for ConfigureSSO
rendering) so the test validates the intended branch guarded by self_serve_sso.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 5a88c1b9-f51a-4e1c-a9c0-6b3d3ca192c2

📥 Commits

Reviewing files that changed from the base of the PR and between 49e435e and 7b91453.

📒 Files selected for processing (80)
  • .changeset/thirty-candies-lick.md
  • packages/astro/src/astro-components/index.ts
  • packages/astro/src/astro-components/interactive/ConfigureSSO.astro
  • packages/astro/src/internal/mount-clerk-astro-js-components.ts
  • packages/astro/src/types.ts
  • packages/clerk-js/sandbox/app.ts
  • packages/clerk-js/sandbox/template.html
  • packages/clerk-js/src/core/clerk.ts
  • packages/clerk-js/src/core/resources/UserSettings.ts
  • packages/clerk-js/src/test/fixture-helpers.ts
  • packages/localizations/src/ar-SA.ts
  • packages/localizations/src/be-BY.ts
  • packages/localizations/src/bg-BG.ts
  • packages/localizations/src/bn-IN.ts
  • packages/localizations/src/ca-ES.ts
  • packages/localizations/src/cs-CZ.ts
  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/el-GR.ts
  • packages/localizations/src/en-GB.ts
  • packages/localizations/src/en-US.ts
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/es-ES.ts
  • packages/localizations/src/es-MX.ts
  • packages/localizations/src/es-UY.ts
  • packages/localizations/src/fa-IR.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/fr-FR.ts
  • packages/localizations/src/he-IL.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hu-HU.ts
  • packages/localizations/src/id-ID.ts
  • packages/localizations/src/is-IS.ts
  • packages/localizations/src/it-IT.ts
  • packages/localizations/src/ja-JP.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/ko-KR.ts
  • packages/localizations/src/mn-MN.ts
  • packages/localizations/src/ms-MY.ts
  • packages/localizations/src/nb-NO.ts
  • packages/localizations/src/nl-BE.ts
  • packages/localizations/src/nl-NL.ts
  • packages/localizations/src/pl-PL.ts
  • packages/localizations/src/pt-BR.ts
  • packages/localizations/src/pt-PT.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/ru-RU.ts
  • packages/localizations/src/sk-SK.ts
  • packages/localizations/src/sr-RS.ts
  • packages/localizations/src/sv-SE.ts
  • packages/localizations/src/ta-IN.ts
  • packages/localizations/src/te-IN.ts
  • packages/localizations/src/th-TH.ts
  • packages/localizations/src/tr-TR.ts
  • packages/localizations/src/uk-UA.ts
  • packages/localizations/src/vi-VN.ts
  • packages/localizations/src/zh-CN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/nuxt/src/module.ts
  • packages/react/src/components/uiComponents.tsx
  • packages/react/src/experimental.ts
  • packages/react/src/isomorphicClerk.ts
  • packages/shared/src/internal/clerk-js/componentGuards.ts
  • packages/shared/src/internal/clerk-js/warnings.ts
  • packages/shared/src/types/clerk.ts
  • packages/shared/src/types/localization.ts
  • packages/shared/src/types/userSettings.ts
  • packages/ui/src/components/ConfigureSSO/ConfigureSSO.tsx
  • packages/ui/src/components/ConfigureSSO/__tests__/ConfigureSSO.test.tsx
  • packages/ui/src/contexts/ClerkUIComponentsContext.tsx
  • packages/ui/src/contexts/components/ConfigureSSO.ts
  • packages/ui/src/contexts/components/index.ts
  • packages/ui/src/elements/Navbar.tsx
  • packages/ui/src/elements/contexts/index.tsx
  • packages/ui/src/internal/appearance.ts
  • packages/ui/src/lazyModules/components.ts
  • packages/ui/src/types.ts
  • packages/vue/src/components/ui-components/ConfigureSSO.vue
  • packages/vue/src/experimental.ts
✅ Files skipped from review due to trivial changes (59)
  • packages/localizations/src/es-UY.ts
  • packages/ui/src/elements/contexts/index.tsx
  • packages/ui/src/contexts/components/index.ts
  • packages/localizations/src/pt-PT.ts
  • .changeset/thirty-candies-lick.md
  • packages/astro/src/astro-components/index.ts
  • packages/localizations/src/es-ES.ts
  • packages/vue/src/components/ui-components/ConfigureSSO.vue
  • packages/clerk-js/sandbox/template.html
  • packages/localizations/src/be-BY.ts
  • packages/localizations/src/mn-MN.ts
  • packages/localizations/src/sk-SK.ts
  • packages/localizations/src/tr-TR.ts
  • packages/astro/src/astro-components/interactive/ConfigureSSO.astro
  • packages/localizations/src/nl-NL.ts
  • packages/localizations/src/is-IS.ts
  • packages/localizations/src/ta-IN.ts
  • packages/astro/src/internal/mount-clerk-astro-js-components.ts
  • packages/shared/src/internal/clerk-js/warnings.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/cs-CZ.ts
  • packages/localizations/src/nb-NO.ts
  • packages/localizations/src/ca-ES.ts
  • packages/localizations/src/fr-FR.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/te-IN.ts
  • packages/localizations/src/en-GB.ts
  • packages/localizations/src/hi-IN.ts
  • packages/react/src/experimental.ts
  • packages/localizations/src/pt-BR.ts
  • packages/localizations/src/ar-SA.ts
  • packages/clerk-js/src/test/fixture-helpers.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/bn-IN.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/ui/src/components/ConfigureSSO/ConfigureSSO.tsx
  • packages/clerk-js/src/core/resources/UserSettings.ts
  • packages/astro/src/types.ts
  • packages/localizations/src/ko-KR.ts
  • packages/localizations/src/es-MX.ts
  • packages/localizations/src/el-GR.ts
  • packages/localizations/src/ru-RU.ts
  • packages/localizations/src/bg-BG.ts
  • packages/localizations/src/it-IT.ts
  • packages/localizations/src/pl-PL.ts
  • packages/localizations/src/id-ID.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/ms-MY.ts
  • packages/localizations/src/sv-SE.ts
  • packages/localizations/src/ja-JP.ts
  • packages/localizations/src/vi-VN.ts
  • packages/localizations/src/zh-CN.ts
  • packages/localizations/src/en-US.ts
  • packages/localizations/src/fa-IR.ts
  • packages/localizations/src/uk-UA.ts
  • packages/localizations/src/nl-BE.ts
  • packages/ui/src/elements/Navbar.tsx
  • packages/shared/src/types/localization.ts
🚧 Files skipped from review as they are similar to previous changes (13)
  • packages/localizations/src/sr-RS.ts
  • packages/nuxt/src/module.ts
  • packages/shared/src/types/userSettings.ts
  • packages/ui/src/internal/appearance.ts
  • packages/localizations/src/th-TH.ts
  • packages/ui/src/contexts/components/ConfigureSSO.ts
  • packages/localizations/src/he-IL.ts
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/de-DE.ts
  • packages/clerk-js/sandbox/app.ts
  • packages/shared/src/internal/clerk-js/componentGuards.ts
  • packages/react/src/components/uiComponents.tsx
  • packages/vue/src/experimental.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant